home *** CD-ROM | disk | FTP | other *** search
/ Business Heaven / Business Heaven.iso / database.w / bfile1 / butnfile.mst < prev    next >
Text File  |  1993-07-31  |  10KB  |  346 lines

  1. '**************************************************************************
  2. '*                       MSSetup Toolkit Sample 1
  3. '**************************************************************************
  4.  
  5. '$DEFINE DEBUG  ''Define for script development/debugging
  6.  
  7. '$INCLUDE 'setupapi.inc'
  8. '$INCLUDE 'msdetect.inc'
  9.  
  10. ''Dialog ID's
  11. CONST WELCOME       = 100
  12. CONST ASKQUIT       = 200
  13. CONST DESTPATH      = 300
  14. CONST EXITFAILURE   = 400
  15. CONST EXITQUIT      = 600
  16. CONST EXITSUCCESS   = 700
  17. CONST OPTIONS       = 800
  18. CONST APPHELP       = 900
  19. CONST TOOBIG       = 6300
  20. CONST BADPATH        = 6400
  21. CONST USERCONFIRM    = 7300
  22. CONST USERNAME        = 7500
  23. CONST NONAME        = 7700
  24. CONST NOORG         = 7800
  25. CONST WIN30HELP        = 8000
  26.  
  27. ''Bitmap ID
  28. CONST LOGO = 1
  29.  
  30. GLOBAL DEST$        ''Default destination directory.
  31. GLOBAL OPTCUR$      ''Option selection from option dialog.
  32.  
  33. 'DECLARE SUB Install
  34. DECLARE FUNCTION MakePath (szDir$, szFile$) AS STRING
  35.  
  36.  
  37. INIT:
  38.     CUIDLL$ = "mscuistf.dll"            ''Custom user interface dll
  39.     HELPPROC$ = "FHelpDlgProc"          ''Help dialog procedure
  40.  
  41.     SetBitmap CUIDLL$, LOGO
  42.     SetTitle "buttonFile Shareware Setup"
  43.  
  44.  
  45.     szInf$ = GetSymbolValue("STF_SRCINFPATH")
  46.     IF szInf$ = "" THEN
  47.         szInf$ = GetSymbolValue("STF_CWDDIR") + "SETUP.INF"
  48.     END IF
  49.     ReadInfFile szInf$
  50.  
  51.     OPTCUR$ = "1"
  52.     DEST$ = "C:\butnfile"
  53.  
  54. '$IFDEF DEBUG
  55.     i% = SetSizeCheckMode(scmOnIgnore)    '' could use scmOff; def = scmOnFatal
  56.     WinDrive$ = MID$(GetWindowsDir, 1, 1)
  57.     IF IsDriveValid(WinDrive$) = 0 THEN
  58.         i% = DoMsgBox("Windows drive ('"+WinDrive$+"') is not a valid drive.", "DEBUG", MB_TASKMODAL+MB_ICONHAND+MB_OK)
  59.         GOTO QUIT
  60.     END IF
  61. '$ENDIF ''DEBUG
  62.  
  63.  
  64. WELCOME:
  65.     sz$ = UIStartDlg(CUIDLL$, WELCOME, "FInfoDlgProc", APPHELP, HELPPROC$)
  66.     IF sz$ = "CONTINUE" THEN
  67.         UIPop 1
  68.     ELSE
  69.         GOSUB ASKQUIT
  70.         GOTO WELCOME
  71.     END IF
  72.  
  73.  
  74.  
  75. GETPATH:
  76.     SetSymbolValue "EditTextIn", DEST$
  77.     SetSymbolValue "EditFocus", "END"
  78. GETPATHL1:
  79.     sz$ = UIStartDlg(CUIDLL$, DESTPATH, "FEditDlgProc", APPHELP, HELPPROC$)
  80.     DEST$ = GetSymbolValue("EditTextOut")
  81.  
  82.     IF sz$ = "CONTINUE" THEN
  83.         IF IsDirWritable(DEST$) = 0 THEN
  84.             GOSUB BADPATH
  85.             GOTO GETPATHL1
  86.         END IF
  87.         UIPop 1
  88.     ELSEIF sz$ = "REACTIVATE" THEN
  89.         GOTO GETPATHL1
  90.     ELSEIF sz$ = "BACK" THEN
  91.         UIPop 1
  92.         GOTO WELCOME
  93.     ELSE
  94.         GOSUB ASKQUIT
  95.         GOTO GETPATH
  96.     END IF
  97.  
  98.  
  99. GET30HELPINSTALL:
  100.     Win30Hlp$ = "NO"
  101.     IF GetWindowsMajorVersion() <= 3 THEN
  102.         IF GetWindowsMinorVersion() < 10 THEN
  103.             sz$ = UIStartDlg(CUIDLL$, WIN30HELP, "FInfoDlgProc", 0, "")
  104.             UIPop 1
  105.             IF sz$ = "CONTINUE" THEN
  106.                 Win30Hlp$ = "YES"
  107.             ELSE
  108.                 Win30Hlp$ = "NO"
  109.             ENDIF
  110.         ENDIF
  111.     ENDIF
  112.  
  113.  
  114. GETUSERNAME:
  115. '** GETUSERNAME1:
  116. '**    sz$ = UIStartDlg(CUIDLL$, USERNAME, "FNameOrgDlgProc", 0, "")
  117. '**    USERNAMES$ = GetSymbolValue("NameOut")
  118. '**    USERORGS$ = GetSymbolValue("OrgOut")
  119. '**
  120. '**    IF sz$ = "CONTINUE" THEN
  121. '**        IF USERNAMES$ ="" THEN
  122. '**
  123. '**            sz$ = UIStartDlg(CUIDLL$, NONAME, "FInfoDlgProc", 0, "")
  124. '**            UIPop 1
  125. '**            GOTO GETUSERNAME1
  126. '**
  127. '**        END IF
  128. '**    ELSEIF sz$ = "EXIT" THEN
  129. '**        UIPop 1
  130. '**        ERROR STFQUIT
  131. '**        GOTO QUIT
  132. '**    ELSEIF sz$ = "CANCEL" THEN
  133. '**        UIPop 1
  134. '**        ERROR STFQUIT
  135. '**        GOTO QUIT
  136. '**    ELSEIF sz$ = "BACK" THEN
  137. '**        UIPop 1
  138. '**        GOTO GETPATH
  139. '**    ELSE
  140. '**        GOSUB ASKQUIT
  141. '**        GOTO GETPATH
  142. '**    END IF
  143. '**
  144. '**    ' clear symbol then add list items
  145. '**    SetSymbolValue "ConfirmTextIn", ""
  146. '**    AddListItem "ConfirmTextIn", USERNAMES$
  147. '**    AddListItem "ConfirmTextIn", USERORGS$
  148.  
  149.  
  150. GETUSERNAME2:
  151. '**    sz$ = UIStartDlg(CUIDLL$, USERCONFIRM, "FConfirmDlgProc", 0, "")
  152. '**    IF sz$ = "CONTINUE" THEN
  153. '**        UIPop 1
  154. '**    ELSEIF sz$ = "EXIT" THEN
  155. '**        UIPop 1
  156. '**        ERROR STFQUIT
  157. '**        GOTO QUIT
  158. '**    ELSEIF sz$ = "CANCEL" THEN
  159. '**        UIPop 1
  160. '**        ERROR STFQUIT
  161. '**        GOTO QUIT
  162. '**    ELSEIF sz$ = "BACK" THEN
  163. '**        UIPop 1
  164. '**        GOTO GETUSERNAME
  165. '**    ELSE
  166. '**        GOSUB ASKQUIT
  167. '**        GOTO GETPATH
  168. '**    END IF
  169.  
  170.     ' pop entry dialog
  171.     UIPop 1
  172.  
  173.  
  174.     GOSUB INSTALL
  175.  
  176.  
  177. QUIT:
  178.     ON ERROR GOTO ERRQUIT
  179.  
  180.     IF ERR = 0 THEN
  181.         dlg% = EXITSUCCESS
  182.     ELSEIF ERR = STFQUIT THEN
  183.         dlg% = EXITQUIT
  184.     ELSE
  185.         dlg% = EXITFAILURE
  186.     END IF
  187. QUITL1:
  188.     sz$ = UIStartDlg(CUIDLL$, dlg%, "FInfo0DlgProc", 0, "")
  189.     IF sz$ = "REACTIVATE" THEN
  190.         GOTO QUITL1
  191.     END IF
  192.     UIPop 1
  193.  
  194.     END
  195.  
  196. ERRQUIT:
  197.     i% = DoMsgBox("Setup sources were corrupted, call 555-1212!", "Setup Message", MB_OK+MB_TASKMODAL+MB_ICONHAND)
  198.     END
  199.  
  200.  
  201.  
  202. BADPATH:
  203.     sz$ = UIStartDlg(CUIDLL$, BADPATH, "FInfo0DlgProc", 0, "")
  204.     IF sz$ = "REACTIVATE" THEN
  205.         GOTO BADPATH
  206.     END IF
  207.     UIPop 1
  208.     RETURN
  209.  
  210.  
  211.  
  212. ASKQUIT:
  213.     sz$ = UIStartDlg(CUIDLL$, ASKQUIT, "FQuitDlgProc", 0, "")
  214.  
  215.     IF sz$ = "EXIT" THEN
  216.         UIPopAll
  217.         ERROR STFQUIT
  218.     ELSEIF sz$ = "REACTIVATE" THEN
  219.         GOTO ASKQUIT
  220.     ELSE
  221.         UIPop 1
  222.     END IF
  223.     RETURN
  224.  
  225.  
  226.  
  227.  
  228. '**
  229. '** Purpose:
  230. '**     Builds the copy list and performs all installation operations.
  231. '** Arguments:
  232. '**     none.
  233. '** Returns:
  234. '**     none.
  235. '*************************************************************************
  236. INSTALL:
  237.  
  238.     SrcDir$ = GetSymbolValue("STF_SRCDIR")
  239.     CreateDir DEST$, cmoNone
  240.  
  241.     'OpenLogFile MakePath(DEST$, "LOGFILE.OUT"), 0
  242.     'WriteToLogFile ""
  243.     'WriteToLogFile "  User chose as destination directory: '" + DEST$ + "'"
  244.     'WriteToLogFile "  User chose option: '" + OPTCUR$ + "'"
  245.     'WriteToLogFile ""
  246.     'WriteToLogFile "May have had to create the directory: " + DEST$
  247.     'WriteToLogFile ""
  248.  
  249.  
  250.     AddSectionFilesToCopyList "Files", SrcDir$, DEST$
  251.     IF GetWindowsMajorVersion() <= 3 THEN
  252.         IF GetWindowsMinorVersion() < 10 THEN
  253.             AddSectionFilesToCopyList "Files30", SrcDir$, GetWindowsSysDir()
  254.         ENDIF
  255.     ENDIF
  256.  
  257.     IF Win30Hlp$ = "YES" THEN
  258.         'RenameFile GetWindowsSysDir()+"WINHELP.EXE","WINHELP.300"
  259.         AddSectionFilesToCopyList "Files30Help", SrcDir$, GetWindowsSysDir()
  260.     ENDIF
  261.  
  262.     AddSectionFilesToCopyList "DLLFiles", SrcDir$, GetWindowsSysDir()
  263.     IF GetCopyListCost(extra$, cost$, needed$) > 0 THEN
  264.         GOSUB TOOBIG
  265.     ELSE
  266.  
  267.         CopyFilesInCopyList
  268.  
  269.         IF USERNAMES$ = "" THEN
  270.             USERNAMES$ = " "
  271.         ENDIF
  272.         StampResource "Files", "BUTNFILE", DEST$, 400, 400, "Unregistered Shareware Version", 31
  273.         IF USERORGS$ = "" THEN
  274.             USERORGS$ = " "
  275.         ENDIF
  276.         StampResource "Files", "BUTNFILE", DEST$, 400, 401, "Choose 'Register...' on the menu bar.", 38
  277.  
  278.  
  279.  
  280.         '//    Create Progman group and icons
  281.         CreateProgmanGroup "buttonFile Shareware", "", cmoNone
  282.         ShowProgmanGroup  "buttonFile Shareware", 1, cmoNone
  283.         CreateProgmanItem "buttonFile Shareware", "buttonFile Shareware", MakePath(DEST$,"butnfile.exe"), "", cmoOverwrite
  284.         CreateProgmanItem "buttonFile Shareware", "Read Me 1st", "notepad.exe "+MakePath(DEST$,"readme.1st"), "", cmoOverwrite
  285.         CreateProgmanItem "buttonFile Shareware", "Read Me 2nd", "notepad.exe "+MakePath(DEST$,"read.me"), "", cmoOverwrite
  286.         CreateProgmanItem "buttonFile Shareware", "User Response Form", "notepad.exe "+MakePath(DEST$,"response."), "", cmoOverwrite
  287.         CreateProgmanItem "buttonFile Shareware", "ButtonWare Products", "notepad.exe "+MakePath(DEST$,"products."), "", cmoOverwrite
  288.         CreateProgmanItem "buttonFile Shareware", "Program Descriptions", "notepad.exe "+MakePath(DEST$,"describe.doc"), "", cmoOverwrite
  289.         CreateProgmanItem "buttonFile Shareware", "License Information", "notepad.exe "+MakePath(DEST$,"license.doc"), "", cmoOverwrite
  290.         CreateProgmanItem "buttonFile Shareware", "Vendor Information", "notepad.exe "+MakePath(DEST$,"vendor.doc"), "", cmoOverwrite
  291.         CreateProgmanItem "buttonFile Shareware", "BBS Information", "notepad.exe "+MakePath(DEST$,"sysop.doc"), "", cmoOverwrite
  292.         CreateProgmanItem "buttonFile Shareware", "Educational Information", "notepad.exe "+MakePath(DEST$,"educate.doc"), "", cmoOverwrite
  293.  
  294.         '//    UPDATE WIN.INI FILE TO RECOGNIZE BTN EXTENSION
  295.         CreateIniKeyValue "WIN.INI", "Extensions", "btn", MakePath(DEST$,"BUTNFILE.EXE")+" ^.BTN", cmoNone
  296.  
  297.         '//    UPDATE BUTTON.INI FILE WITH DEFAULT DECK
  298.         ini0$ = MakePath(DEST$, "software.BTN")
  299.         sfile$= MakePath(GetWindowsDir(), "BUTTON.INI")
  300.  
  301.         RemoveIniSection sfile$, "ButtonFileSettings", cmoNone
  302.         CreateIniKeyValue sfile$, "ButtonFileSettings", "Filename0", ini0$, cmoNone
  303.         CreateIniKeyValue sfile$, "ButtonFileSettings", "FileCoords0", "", cmoNone
  304.         CreateIniKeyValue sfile$, "ButtonFileSettings", "FileCount", "1", cmoNone
  305.  
  306.         'AddDos5Help "YOURAPP", "A brief help text for your Windows application."+chr$(10)+"It can be continued on another line with chr$(10).", cmoNone
  307.     ENDIF
  308.     'CloseLogFile
  309.     RETURN
  310.  
  311.  
  312. TOOBIG:
  313.     sz$ = UIStartDlg(CUIDLL$, TOOBIG, "FInfo0DlgProc", 0, "")
  314.     IF sz$ = "REACTIVATE" THEN
  315.         GOTO TOOBIG
  316.     ENDIF
  317.     ERR = TOOBIG
  318.     UIPop 1
  319.     RETURN
  320.  
  321.  
  322.  
  323.  
  324.  
  325. '**
  326. '** Purpose:
  327. '**     Appends a file name to the end of a directory path,
  328. '**     inserting a backslash character as needed.
  329. '** Arguments:
  330. '**     szDir$  - full directory path (with optional ending "\")
  331. '**     szFile$ - filename to append to directory
  332. '** Returns:
  333. '**     Resulting fully qualified path name.
  334. '*************************************************************************
  335. FUNCTION MakePath (szDir$, szFile$) STATIC AS STRING
  336.     IF szDir$ = "" THEN
  337.         MakePath = szFile$
  338.     ELSEIF szFile$ = "" THEN
  339.         MakePath = szDir$
  340.     ELSEIF MID$(szDir$, LEN(szDir$), 1) = "\" THEN
  341.         MakePath = szDir$ + szFile$
  342.     ELSE
  343.         MakePath = szDir$ + "\" + szFile$
  344.     END IF
  345. END FUNCTION
  346.